package 创建型模式

/**
 * 用原型实例指定创建对象的种类，并且通过拷贝这些原型创建新的对象
 */

class Student {
    private var id: Int = 0
    private var name: String = ""

    fun copy(): Student {
        return Student().also {
            it.id = id
            it.name = name
        }
    }
}

/**
 * Java的Object提供了一个clone()方法，
 * 它的意图就是复制一个新的对象出来
 * 我们需要实现一个Cloneable接口来标识一个对象是“可复制”的
 * 但是返回类型要强制转型
 */